﻿namespace Blaze.Framework.LuaExtensions
{
    using UnityEngine.UI;

    /// <summary>
    /// 为<see cref="LuaBehaviour"/>提供<see cref="LoopScrollRect"/>的回调处理。
    /// </summary>
    public partial class LuaBehaviour : ILoopScrollRectHandler
    {
        #region ILoopScrollRectHandler Members

        /// <summary>
        /// 当需要用数据填充滚动单元格时调用此方法。
        /// </summary>
        /// <param name="content">需要填充的数据</param>
        public void OnScrollCellContent(object content)
        {
            if (!Initialize())
                return;
            mFunctionCache.Action("OnScrollCellContent", content);
        }

        /// <summary>
        /// 当滚动单元格的索引变更时调用此方法。
        /// </summary>
        /// <param name="index">索引位置</param>
        public void OnScrollCellIndex(int index)
        {
            if (!Initialize())
                return;
            mFunctionCache.Action("OnScrollCellIndex", index);
        }

        /// <summary>
        /// 当单元格需要回收时调用此方法。
        /// </summary>
        public void OnScrollCellReturn()
        {
            if (!Initialize())
                return;
            mFunctionCache.Action("OnScrollCellReturn");
        }

        #endregion
    }
}